package com.liuguoqing.richtersubstitution.before;

/**
 * 测试
 *
 * @Author : liugq
 * @Date : 2022/5/12 11:47
 * @See : 参考类
 * @Since： JDK1.8
 * @Version : 1.0
 */
public class RectangleDemo {

    /**
     * 给四边形扩容
     * @param rectangle 待扩容的四边形
     */
    public static void resize(Rectangle rectangle) {
        while (rectangle.getWidth() <= rectangle.getLength())
            rectangle.setWidth(rectangle.getWidth() + 1);
    }

    /**
     * 打印四边形的长、宽
     * @param rectangle 需要打印的四边形信息
     */
    public static void printWL(Rectangle rectangle){
        System.out.println(rectangle.getLength());
        System.out.println(rectangle.getWidth());
    }


    public static void main(String[] args) {
        //长方形的扩容，正常
        Rectangle rectangle = new Rectangle();
        rectangle.setLength(20);
        rectangle.setWidth(10);
        resize(rectangle);
        printWL(rectangle);

        //正方形的扩容无法进行，会进入死循环；引入 里氏代换原则 解决
        rectangle = new Square();
        rectangle.setLength(20); //因为正方形长宽一样，所以只需要设置一边即可
        resize(rectangle);
        printWL(rectangle);
    }
}
